<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>cpp-any: /home/eric/workspace/git-rep/cpp-any/any.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">cpp-any
   </div>
   <div id="projectbrief">Implementation of std::any class of C++17 standard under C++11 standard</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">/home/eric/workspace/git-rep/cpp-any/any.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;new&gt;</code><br />
<code>#include &lt;typeinfo&gt;</code><br />
<code>#include &lt;utility&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for any.h:</div>
<div class="dyncontent">
<div class="center"><img src="any_8h__incl.png" border="0" usemap="#_2home_2eric_2workspace_2git-rep_2cpp-any_2any_8h" alt=""/></div>
<map name="_2home_2eric_2workspace_2git-rep_2cpp-any_2any_8h" id="_2home_2eric_2workspace_2git-rep_2cpp-any_2any_8h">
<area shape="rect" title=" " alt="" coords="34,5,199,47"/>
<area shape="rect" title=" " alt="" coords="5,95,55,121"/>
<area shape="rect" title=" " alt="" coords="79,95,155,121"/>
<area shape="rect" title=" " alt="" coords="179,95,239,121"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="any_8h__dep__incl.png" border="0" usemap="#_2home_2eric_2workspace_2git-rep_2cpp-any_2any_8hdep" alt=""/></div>
<map name="_2home_2eric_2workspace_2git-rep_2cpp-any_2any_8hdep" id="_2home_2eric_2workspace_2git-rep_2cpp-any_2any_8hdep">
<area shape="rect" title=" " alt="" coords="12,5,177,47"/>
<area shape="rect" href="any_8cpp.html" title=" " alt="" coords="5,95,184,136"/>
</map>
</div>
</div>
<p><a href="any_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__or.html">detail::_or&lt;... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__or_3_4.html">detail::_or&lt;&gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__or_3_01___b1_01_4.html">detail::_or&lt; _B1 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__or_3_01___b1_00_01___b2_01_4.html">detail::_or&lt; _B1, _B2 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__or_3_01___b1_00_01___b2_00_01___b3_00_01___bn_8_8_8_01_4.html">detail::_or&lt; _B1, _B2, _B3, _Bn... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__and.html">detail::_and&lt;... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__and_3_4.html">detail::_and&lt;&gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__and_3_01___b1_01_4.html">detail::_and&lt; _B1 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__and_3_01___b1_00_01___b2_01_4.html">detail::_and&lt; _B1, _B2 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__and_3_01___b1_00_01___b2_00_01___b3_00_01___bn_8_8_8_01_4.html">detail::_and&lt; _B1, _B2, _B3, _Bn... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__not.html">detail::_not&lt; _Pp &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__in__place__type__t.html">detail::_in_place_type_t&lt; _Tp &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__is__in__place__type__impl.html">detail::_is_in_place_type_impl&lt; typename &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__is__in__place__type__impl_3_01__in__place__type__t_3_01___tp_01_4_01_4.html">detail::_is_in_place_type_impl&lt; _in_place_type_t&lt; _Tp &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdetail_1_1__is__in__place__type.html">detail::_is_in_place_type&lt; _Tp &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbad__any__cast.html">bad_any_cast</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exception thrown by the value-returning forms of any_cast on a type mismatch.  <a href="classbad__any__cast.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classany.html">any</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class any describes a type-safe container for single values of any type.  <a href="classany.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacedetail"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacedetail.html">detail</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a7f68455bc8873493c47930adc03d4b11"><td class="memTemplParams" colspan="2">template&lt;bool B&gt; </td></tr>
<tr class="memitem:a7f68455bc8873493c47930adc03d4b11"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacedetail.html#a7f68455bc8873493c47930adc03d4b11">detail::_bool_constant</a> = std::integral_constant&lt; bool, B &gt;</td></tr>
<tr class="separator:a7f68455bc8873493c47930adc03d4b11"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a574e2db1f39e0e77be3fc0467ed46f09"><td class="memTemplParams" colspan="2">template&lt;typename... _Bn&gt; </td></tr>
<tr class="memitem:a574e2db1f39e0e77be3fc0467ed46f09"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacedetail.html#a574e2db1f39e0e77be3fc0467ed46f09">detail::_and_v</a> () noexcept</td></tr>
<tr class="separator:a574e2db1f39e0e77be3fc0467ed46f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5aba8f8eb543a243a74d6e9beadfc1b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="any_8h.html#a5aba8f8eb543a243a74d6e9beadfc1b1">throw_bad_any_cast</a> ()</td></tr>
<tr class="separator:a5aba8f8eb543a243a74d6e9beadfc1b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace81d9d9deec1c1fbd711a898990759f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="any_8h.html#ace81d9d9deec1c1fbd711a898990759f">swap</a> (<a class="el" href="classany.html">any</a> &amp;lhs, <a class="el" href="classany.html">any</a> &amp;rhs) noexcept</td></tr>
<tr class="separator:ace81d9d9deec1c1fbd711a898990759f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af597db5576048a3aefd30ec700d36339"><td class="memTemplParams" colspan="2">template&lt;typename _Tp , typename... _Args&gt; </td></tr>
<tr class="memitem:af597db5576048a3aefd30ec700d36339"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classany.html">any</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="any_8h.html#af597db5576048a3aefd30ec700d36339">make_any</a> (_Args &amp;&amp;... args)</td></tr>
<tr class="separator:af597db5576048a3aefd30ec700d36339"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae06eb8860b03b4a92c3e9979043dfad9"><td class="memTemplParams" colspan="2">template&lt;typename _Tp , typename _Up , typename... _Args&gt; </td></tr>
<tr class="memitem:ae06eb8860b03b4a92c3e9979043dfad9"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classany.html">any</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="any_8h.html#ae06eb8860b03b4a92c3e9979043dfad9">make_any</a> (std::initializer_list&lt; _Up &gt; list, _Args &amp;&amp;... args)</td></tr>
<tr class="separator:ae06eb8860b03b4a92c3e9979043dfad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7686efd7fbdd733ca3fe088e719c0da8"><td class="memTemplParams" colspan="2">template&lt;typename _ValueType &gt; </td></tr>
<tr class="memitem:a7686efd7fbdd733ca3fe088e719c0da8"><td class="memTemplItemLeft" align="right" valign="top">_ValueType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="any_8h.html#a7686efd7fbdd733ca3fe088e719c0da8">any_cast</a> (const <a class="el" href="classany.html">any</a> &amp;operand)</td></tr>
<tr class="separator:a7686efd7fbdd733ca3fe088e719c0da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a5d54cddb6311b8f2d2d5a6aaf116c"><td class="memTemplParams" colspan="2">template&lt;typename _ValueType &gt; </td></tr>
<tr class="memitem:a96a5d54cddb6311b8f2d2d5a6aaf116c"><td class="memTemplItemLeft" align="right" valign="top">_ValueType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="any_8h.html#a96a5d54cddb6311b8f2d2d5a6aaf116c">any_cast</a> (<a class="el" href="classany.html">any</a> &amp;operand)</td></tr>
<tr class="separator:a96a5d54cddb6311b8f2d2d5a6aaf116c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00f5c5ff301815e6e87a2b333af7948e"><td class="memTemplParams" colspan="2">template&lt;typename _ValueType &gt; </td></tr>
<tr class="memitem:a00f5c5ff301815e6e87a2b333af7948e"><td class="memTemplItemLeft" align="right" valign="top">_ValueType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="any_8h.html#a00f5c5ff301815e6e87a2b333af7948e">any_cast</a> (<a class="el" href="classany.html">any</a> &amp;&amp;operand)</td></tr>
<tr class="separator:a00f5c5ff301815e6e87a2b333af7948e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc71134a917f5dd37c53dc716967b182"><td class="memTemplParams" colspan="2">template&lt;typename _ValueType &gt; </td></tr>
<tr class="memitem:adc71134a917f5dd37c53dc716967b182"><td class="memTemplItemLeft" align="right" valign="top">const _ValueType *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="any_8h.html#adc71134a917f5dd37c53dc716967b182">any_cast</a> (const <a class="el" href="classany.html">any</a> *operand) noexcept</td></tr>
<tr class="separator:adc71134a917f5dd37c53dc716967b182"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7212552e256afc70bcef4d03f6beddbf"><td class="memTemplParams" colspan="2">template&lt;typename _ValueType &gt; </td></tr>
<tr class="memitem:a7212552e256afc70bcef4d03f6beddbf"><td class="memTemplItemLeft" align="right" valign="top">_ValueType *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="any_8h.html#a7212552e256afc70bcef4d03f6beddbf">any_cast</a> (<a class="el" href="classany.html">any</a> *operand) noexcept</td></tr>
<tr class="separator:a7212552e256afc70bcef4d03f6beddbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a00f5c5ff301815e6e87a2b333af7948e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00f5c5ff301815e6e87a2b333af7948e">&#9670;&nbsp;</a></span>any_cast() <span class="overload">[1/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _ValueType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_ValueType any_cast </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classany.html">any</a> &amp;&amp;&#160;</td>
          <td class="paramname"><em>operand</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Performs type-safe access to the contained object.</p>
<p>Let U be <code> std::remove_cv_t&lt;std::remove_reference_t&lt;_ValueType&gt;&gt; </code>.</p>
<p>The program is ill-formed if <code>std::is_constructible_v&lt;_ValueType, U&gt;</code> is false.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classbad__any__cast.html" title="Exception thrown by the value-returning forms of any_cast on a type mismatch.">bad_any_cast</a></td><td>if the typeid of the requested _ValueType does not match that of the contents of <em>operand</em>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>static_cast&lt;_ValueType&gt;(std::move(*any_cast&lt;U&gt;(&amp;operand))). </dd></dl>

<p class="definition">Definition at line <a class="el" href="any_8h_source.html#l00639">639</a> of file <a class="el" href="any_8h_source.html">any.h</a>.</p>

</div>
</div>
<a id="a96a5d54cddb6311b8f2d2d5a6aaf116c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96a5d54cddb6311b8f2d2d5a6aaf116c">&#9670;&nbsp;</a></span>any_cast() <span class="overload">[2/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _ValueType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_ValueType any_cast </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classany.html">any</a> &amp;&#160;</td>
          <td class="paramname"><em>operand</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Performs type-safe access to the contained object.</p>
<p>Let U be <code> std::remove_cv_t&lt;std::remove_reference_t&lt;_ValueType&gt;&gt; </code>.</p>
<p>The program is ill-formed if <code>std::is_constructible_v&lt;_ValueType, U&amp;&gt;</code> is false.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classbad__any__cast.html" title="Exception thrown by the value-returning forms of any_cast on a type mismatch.">bad_any_cast</a></td><td>if the typeid of the requested _ValueType does not match that of the contents of <em>operand</em>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>static_cast&lt;_ValueType&gt;(*any_cast&lt;U&gt;(&amp;operand)) </dd></dl>

<p class="definition">Definition at line <a class="el" href="any_8h_source.html#l00612">612</a> of file <a class="el" href="any_8h_source.html">any.h</a>.</p>

</div>
</div>
<a id="a7212552e256afc70bcef4d03f6beddbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7212552e256afc70bcef4d03f6beddbf">&#9670;&nbsp;</a></span>any_cast() <span class="overload">[3/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _ValueType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_ValueType* any_cast </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classany.html">any</a> *&#160;</td>
          <td class="paramname"><em>operand</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Performs type-safe access to the contained object.</p>
<dl class="section return"><dt>Returns</dt><dd>If operand is not a null pointer, and the typeid of the requested <code>_ValueType</code> matches that of the contents of <em>operand</em>, a pointer to the value contained by <em>operand</em>, otherwise a null pointer. </dd></dl>

<p class="definition">Definition at line <a class="el" href="any_8h_source.html#l00708">708</a> of file <a class="el" href="any_8h_source.html">any.h</a>.</p>

</div>
</div>
<a id="a7686efd7fbdd733ca3fe088e719c0da8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7686efd7fbdd733ca3fe088e719c0da8">&#9670;&nbsp;</a></span>any_cast() <span class="overload">[4/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _ValueType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_ValueType any_cast </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classany.html">any</a> &amp;&#160;</td>
          <td class="paramname"><em>operand</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Performs type-safe access to the contained object.</p>
<p>Let U be <code> std::remove_cv_t&lt;std::remove_reference_t&lt;_ValueType&gt;&gt; </code>.</p>
<p>The program is ill-formed if <code>std::is_constructible_v&lt;_ValueType, const U&amp;&gt;</code> is false.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classbad__any__cast.html" title="Exception thrown by the value-returning forms of any_cast on a type mismatch.">bad_any_cast</a></td><td>if the typeid of the requested _ValueType does not match that of the contents of <em>operand</em>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>static_cast&lt;_ValueType&gt;(*any_cast&lt;U&gt;(&amp;operand)) </dd></dl>

<p class="definition">Definition at line <a class="el" href="any_8h_source.html#l00586">586</a> of file <a class="el" href="any_8h_source.html">any.h</a>.</p>

</div>
</div>
<a id="adc71134a917f5dd37c53dc716967b182"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc71134a917f5dd37c53dc716967b182">&#9670;&nbsp;</a></span>any_cast() <span class="overload">[5/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _ValueType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const _ValueType* any_cast </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classany.html">any</a> *&#160;</td>
          <td class="paramname"><em>operand</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Performs type-safe access to the contained object.</p>
<dl class="section return"><dt>Returns</dt><dd>If operand is not a null pointer, and the typeid of the requested <code>_ValueType</code> matches that of the contents of <em>operand</em>, a pointer to the value contained by <em>operand</em>, otherwise a null pointer. </dd></dl>

<p class="definition">Definition at line <a class="el" href="any_8h_source.html#l00691">691</a> of file <a class="el" href="any_8h_source.html">any.h</a>.</p>

</div>
</div>
<a id="af597db5576048a3aefd30ec700d36339"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af597db5576048a3aefd30ec700d36339">&#9670;&nbsp;</a></span>make_any() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp , typename... _Args&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classany.html">any</a> make_any </td>
          <td>(</td>
          <td class="paramtype">_Args &amp;&amp;...&#160;</td>
          <td class="paramname"><em>args</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructs an any object containing an object of type _Tp, passing the provided arguments to _Tp's constructor.</p>
<p>Equivalent to return <code> <a class="el" href="classany.html" title="The class any describes a type-safe container for single values of any type.">any(std::in_place_type&lt;_Tp&gt;, std::forward&lt;_Args&gt;(args)...)</a>; </code> </p>

<p class="definition">Definition at line <a class="el" href="any_8h_source.html#l00556">556</a> of file <a class="el" href="any_8h_source.html">any.h</a>.</p>

</div>
</div>
<a id="ae06eb8860b03b4a92c3e9979043dfad9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae06eb8860b03b4a92c3e9979043dfad9">&#9670;&nbsp;</a></span>make_any() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp , typename _Up , typename... _Args&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classany.html">any</a> make_any </td>
          <td>(</td>
          <td class="paramtype">std::initializer_list&lt; _Up &gt;&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Args &amp;&amp;...&#160;</td>
          <td class="paramname"><em>args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructs an any object containing an object of type _Tp, passing the provided arguments to _Tp's constructor.</p>
<p>Equivalent to <code> return std::any(std::in_place_type&lt;_Tp&gt;, list, std::forward&lt;_Args&gt;(args)...); </code> </p>

<p class="definition">Definition at line <a class="el" href="any_8h_source.html#l00569">569</a> of file <a class="el" href="any_8h_source.html">any.h</a>.</p>

</div>
</div>
<a id="ace81d9d9deec1c1fbd711a898990759f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace81d9d9deec1c1fbd711a898990759f">&#9670;&nbsp;</a></span>swap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classany.html">any</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classany.html">any</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Swaps the content of two any objects by calling <code> lhs.swap(rhs) </code>. </p>

<p class="definition">Definition at line <a class="el" href="any_8h_source.html#l00545">545</a> of file <a class="el" href="any_8h_source.html">any.h</a>.</p>

</div>
</div>
<a id="a5aba8f8eb543a243a74d6e9beadfc1b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5aba8f8eb543a243a74d6e9beadfc1b1">&#9670;&nbsp;</a></span>throw_bad_any_cast()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void throw_bad_any_cast </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="any_8h_source.html#l00142">142</a> of file <a class="el" href="any_8h_source.html">any.h</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
